---
title: Send patches
x-toc-enable: true
...

Fedfree repositories
====================

Git
---

The Fedfree website is maintained in Git, which is a version control
system that you can learn more about here:
<https://git-scm.com/>

The `fedfree` project has 2 main Git repositories:

* Website (+docs): <https://notabug.org/fedfree/ffwww>
* Images (for website): <https://notabug.org/fedfree/ffwww-img>

Who to contact
--------------

Information about who works on the Fedfree website and who runs the project can
be found on [who.md](who.md)

ffwww and ffwww-img
-------------------

The *entire* Fedfree website is hosted in a Git repository.
Download it like so:

    git clone https://notabug.org/fedfree/ffwww

Images are hosted on <https://av.fedfree.org/> and available in a separate
repository:

    git clone https://notabug.org/fedfree/ffwww-img

Make whatever changes you like. See notes below about how to send patches.

Rules for images
----------------

Images should be as compressed as possible, but without affecting
human-perceived image quality.

To reduce size further, you should also scale and crop the images,
showing only what is necessary.

Use common sense. This is to keep the repository from becoming too
large. Images are part of a separate repository, specifically so that
the main repository can be worked upon more efficiently, because it's
purely plain text.

Untitled Static Site Generator
------------------------------

The entire website is written in Markdown, specifically the Pandoc version of
it. The static HTML pages are generated with
the [Untitled Static Site Generator](https://untitled.vimuser.org/).

If you like, you can set up a local HTTP server and build your own local
version of the website. Please note that images will still link to the ones
hosted on <https://av.fedfree.org/>, so any images that you add to `ffwww-img`
will not show up on your local `ffwww` site if you make the image links (for
images that you add) link to `av.fedfree.org`. However, it is required that
such images be hosted on av.fedfree.org.

Therefore, if you wish to add images to the website, please also submit to the
`ffwww-img` repository, with the links to them being
<https://av.fedfree.org/path/to/your/new/image/in/ffwww-img> for each one.
When it is merged on the fedfree website, your images will appear live.

For development purposes, you might make your images local links first, and
then adjust the URLs when you submit your documentation/website patches.

Instructions are on the Untitled website, for how to set up your local version
of the website. Download untitled, and inside your `untitled` directory, create
a directory named `www/` then go inside the www directory, and clone
the `ffwww` repository there. Configure your local HTTP server accordingly.

Again, instructions are available on the Untitled website for this purpose.

Name not required
-----------------

Contributions that you make are publicly recorded, in a Git repository which
everyone can access. This includes the name and email address of the
contributor.

In Git, for author name and email address, you do not have to use identifying
data. You can use `Fedfree Contributor` and your email address could be
specified as contributor@fedfree.org. You are permitted to do this, if
you wish to maintain privacy. We believe in privacy. If you choose to remain
anonymous, we will honour this.

Of course, you can use whichever name and/or email address you like.

Legally speaking, all copyright is automatic under the Berne Convention of
international copyright law. It does not matter which name, or indeed whether
you even declare a copyright (but we do require that certain copyright
licenses are used - read more about that on this same page).

If you use a different name and email address on your commits/patches, then you
should be fairly anonymous. Use
[git log](https://git-scm.com/book/en/v2/Git-Basics-Viewing-the-Commit-History)
and [git show](https://git-scm.com/docs/git-show) to confirm that before you
push changes to a public Git repository.

Licenses (for contributors)
--------

CC0 preferred, for all contributions, but other libre licenses may be
accepted under certain conditions.

See [license.md](license.md) for more information.

Send patches
------------

Make an account on <https://notabug.org/> and navigate (while logged in) to the
repository that you wish to work on. Click *Fork* and in your account,
you will have your own repository of Fedfree. Clone your repository, make
whatever changes you like to it and then push to your repository, in your
account on NotABug. You can also do this on a new branch, if you wish.

In your Notabug account, you can then navigate to the official Fedfree
repository and submit a Pull Request. The way it works is similar to other
popular web-based Git platforms that people use these days.

You can submit your patches there. Alternative, you can log onto the Fedfree
IRC channel and notify the channel of which patches you want reviewed, if you
have your own Git repository with the patches.

Once you have issued a Pull Request, the fedfree maintainers will be notified
via email. If you do not receive a fast enough response from the project, then
you could also notify the project via the `#fedfree` channel on Libera IRC.

TODO: Self-hosted Git
---------------------

Gitea, based on Gogs (which Notabug uses), is implementing protocols similar
to ActivityPub, like in Mastodon. With this, federated *bug reports* and pull
requests across web-based Gitea instances would be possible.

I'm not sure on this day, 25 December 2022, whether such functionality is
stable or *available* yet, so I'm outsourcing Git to Notabug, which does have
a community on it. There is also [Codeberg](https://codeberg.org/), which uses
Gitea. Both Notabug and Codeberg are excellent communities, run by people who
truly believe in libre software ideology, unlike companies such as GitLab or
GitHub. The management of Codeberg and Notabug is generally benevolent, so I'm
inclined to trust them.

I don't want people sending web-based pull requests to have to make an account
just for my site, so I use Notabug for that purpose, but self-hosted Gitea
will be implemented for Fedfree at a later date. A world of opportunities would
be opened if pull requests and such were federated.

More information about federated Gitea here:
<https://forgefriends.org/> - it's actually targeting more than just Gitea,
but Gitea in general is a very well-designed web-based system for code
collaboration; lightweight, easy to use, and *less code* than GitLab CE (less
is always better, because the percentage of bugs in any codebase is usually
fixed, and bugs == you get hacked).

I could also host a mailing list for sending patches, but most people don't
want to use Git that way.
